#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main() 
{
    char *const argv[] = {"ps", "-ef", NULL};
    char *const envp[] = {"PATH=/bin:/usr/bin", "TERM=console", NULL};

    // 使用 execl 执行 /bin/ps 命令，需要完整路径
    execl("/bin/ps", "ps", "-ef", NULL);

    // 使用 execlp 执行 ps 命令，带 p 的，可以使用环境变量 PATH，无需写全路径
    execlp("ps", "ps", "-ef", NULL);

    // 使用 execle 执行 ps 命令，带 e 的，需要自己组装环境变量
    execle("/bin/ps", "ps", "-ef", NULL, envp);

    // 使用 execv 执行 /bin/ps 命令，需要完整路径
    execv("/bin/ps", argv);

    // 使用 execvp 执行 ps 命令，带 p 的，可以使用环境变量 PATH，无需写全路径
    execvp("ps", argv);

    // 使用 execve 执行 /bin/ps 命令，带 e 的，需要自己组装环境变量
    execve("/bin/ps", argv, envp);

    exit(0);
}


//int main()
//{
//    printf("程序运行！\n");
//    execl("/usr/bin/ls", "ls", "-l", "-a", NULL);
//    printf("程序运行完毕！\n");
//    return 0;
//}

